This invention relates to grid computing systems and, more particularly, to build tools that can be utilized in both grid and non-grid environments.
Grid computing is a rapidly expanding field. Grid computing enables the virtualization of distributed computing and data resources such as processing, network bandwidth, and storage capacity to create a single system image, granting users and applications seamless access to vast IT capabilities. Just as an Internet user views a unified instance of content via the web, a grid user essentially sees a single, large virtual computer.
At its core, grid computing is based on an open set of standards and protocols, e.g., Open Grid Services Architecture (OGSA), that enable communication across heterogeneous, geographically dispersed environments. With grid computing, organizations can optimize computing and data resources, pool them for large capacity workloads, share them across networks, and enable collaboration.
ANT is a sophisticated build tool for the JAVA community developed by the Apache Project. ANT is an open source build manager for JAVA applications. It uses standard XML to document the build, documentation, testing, and deployment process. Although ANT can run XML tasks that are explicitly tagged as parallel, i.e., task files can be divided for parallel processing on the same server, it cannot span tasks across multiple machines, i.e., it is not directly compatible with grid computing systems.
To remedy this inability to use ANT in a grid environment, GridAnt was developed by Gregor von Laszewski and his team at Argonne National Laboratories. GridAnt relies upon explicit declaration of grid tasks in the GridAnt code. This is accomplished through the use of tags for each task to be grid-enabled. These new tags are not compatible with ANT. These tags must be manually inserted and, once inserted in the code, the code can no longer be used on stand-alone ANT machines. That is, once the code is grid-enabled, it can only be used in a grid computing environment.
Tasks sent to the scheduler using this prior art system are explicitly called out by the programmer, not by ANT. GridAnt also falls short of expectations when it comes to JAVA compilation and the build process. GridAnt is primarily used for task management. It is not designed as a JAVA build tool, as ANT was originally conceived, but as a scheduling device. GridAnt does not have grid-enabled tags for JAVA compiling, documenting, testing, or deployment.
Accordingly, it would be desirable to have grid-enabled ANT applications that can run either on a stand-alone machine, i.e., in a “pure” ANT environment, or on multiple machines, i.e., in a grid environment.